{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "os.chdir('../')\n",
    "\n",
    "import DeepPurpose.models as models\n",
    "from DeepPurpose.utils import *\n",
    "from DeepPurpose.dataset import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Beginning Processing...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/kh278/.conda/envs/DeepPurpose/lib/python3.7/site-packages/IPython/core/interactiveshell.py:3254: DtypeWarning: Columns (0,7) have mixed types.Specify dtype option on import or set low_memory=False.\n",
      "  if (await self.run_code(code, result,  async_=asy)):\n",
      "/home/kh278/DeepPurpose/dataset.py:224: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  val['binary_label'][(val.PUBCHEM_ACTIVITY_SCORE >= threshold) & (val.PUBCHEM_ACTIVITY_SCORE <=100)] = 1\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Default binary threshold for the binding affinity scores is 15, recommended by the investigator\n",
      "Done!\n",
      "in total: 26640 drug-target pairs\n",
      "encoding drug...\n",
      "unique drugs: 13764\n",
      "drug encoding finished...\n",
      "encoding protein...\n",
      "unique target sequence: 1\n",
      "protein encoding finished...\n",
      "splitting dataset...\n",
      "Done.\n"
     ]
    }
   ],
   "source": [
    "X_drug, X_target, y = load_AID1706_SARS_CoV_3CL('./kh278/DeepPurpose/data', oversample_num = 30)\n",
    "\n",
    "drug_encoding = 'MPNN'\n",
    "target_encoding = 'CNN'\n",
    "train, val, test = data_process(X_drug, [X_target], y, \n",
    "                                drug_encoding, target_encoding, \n",
    "                                split_method='HTS',frac=[0.8,0.1,0.1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'SGFKKLVSPSSAVEKCIVSVSYRGNNLNGLWLGDSIYCPRHVLGKFSGDQWGDVLNLANNHEFEVVTQNGVTLNVVSRRLKGAVLILQTAVANAETPKYKFVKANCGDSFTIACSYGGTVIGLYPVTMRSNGTIRASFLAGACGSVGFNIEKGVVNFFYMHHLELPNALHTGTDLMGEFYGGYVDEEVAQRVPPDNLVTNNIVAWLYAAIISVKESSFSQPKWLESTTVSIEDYNRWASDNGFTPFSTSTAITKLSAITGVDVCKLLRTIMVKSAQWGSDPILGQYNFEDELTPESVFNQVGGVRLQ'"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_target"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# use the parameters setting provided in the paper: https://arxiv.org/abs/1801.10193\n",
    "config = generate_config(drug_encoding = drug_encoding, \n",
    "                         target_encoding = target_encoding, \n",
    "                         cls_hidden_dims = [1024,1024,512], \n",
    "                         train_epoch = 10, \n",
    "                         LR = 0.001, \n",
    "                         batch_size = 128,\n",
    "                         cnn_target_filters = [32,64],\n",
    "                         cnn_target_kernels = [4,8,12],\n",
    "                         hidden_dim_drug = 128,\n",
    "                         mpnn_hidden_size = 128,\n",
    "                         mpnn_depth = 3\n",
    "                        )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Let's use 1 GPU!\n",
      "--- Data Preparation ---\n",
      "--- Go for Training ---\n",
      "Training at Epoch 1 iteration 0 with loss 0.69390976. Total time 0.0005555555555555556 hours\n",
      "Training at Epoch 1 iteration 100 with loss 0.6797779. Total time 0.012777777777777779 hours\n",
      "Validation at Epoch 1 , AUROC: 0.656721467788321 , AUPRC: 0.1139377227627888 , F1: 0.11555555555555558\n",
      "Training at Epoch 2 iteration 0 with loss 0.5824497. Total time 0.021666666666666667 hours\n",
      "Training at Epoch 2 iteration 100 with loss 0.6559816. Total time 0.03388888888888889 hours\n",
      "Validation at Epoch 2 , AUROC: 0.7435984190209618 , AUPRC: 0.203749053162305 , F1: 0.2\n",
      "Training at Epoch 3 iteration 0 with loss 0.60759115. Total time 0.043055555555555555 hours\n",
      "Training at Epoch 3 iteration 100 with loss 0.4939893. Total time 0.05527777777777778 hours\n",
      "Validation at Epoch 3 , AUROC: 0.7398151423342509 , AUPRC: 0.2222624968576843 , F1: 0.12955465587044535\n",
      "Training at Epoch 4 iteration 0 with loss 0.35813576. Total time 0.06444444444444444 hours\n",
      "Training at Epoch 4 iteration 100 with loss 0.30503374. Total time 0.07666666666666666 hours\n",
      "Validation at Epoch 4 , AUROC: 0.7323562431754918 , AUPRC: 0.23743362871892082 , F1: 0.16172506738544476\n",
      "Training at Epoch 5 iteration 0 with loss 0.34006423. Total time 0.08555555555555555 hours\n",
      "Training at Epoch 5 iteration 100 with loss 0.20128646. Total time 0.09777777777777778 hours\n",
      "Validation at Epoch 5 , AUROC: 0.7434138689386833 , AUPRC: 0.27411079790045667 , F1: 0.18633540372670807\n",
      "Training at Epoch 6 iteration 0 with loss 0.20795208. Total time 0.10694444444444444 hours\n",
      "Training at Epoch 6 iteration 100 with loss 0.1511277. Total time 0.11916666666666667 hours\n",
      "Validation at Epoch 6 , AUROC: 0.7719729941712932 , AUPRC: 0.28121194707155206 , F1: 0.20134228187919465\n",
      "Training at Epoch 7 iteration 0 with loss 0.20788316. Total time 0.12805555555555556 hours\n",
      "Training at Epoch 7 iteration 100 with loss 0.10370815. Total time 0.14027777777777778 hours\n",
      "Validation at Epoch 7 , AUROC: 0.7628377650985035 , AUPRC: 0.2718472876486007 , F1: 0.3404255319148936\n",
      "Training at Epoch 8 iteration 0 with loss 0.09659755. Total time 0.14944444444444444 hours\n",
      "Training at Epoch 8 iteration 100 with loss 0.25628504. Total time 0.16166666666666665 hours\n",
      "Validation at Epoch 8 , AUROC: 0.764729403441859 , AUPRC: 0.31175104495369604 , F1: 0.3466666666666667\n",
      "Training at Epoch 9 iteration 0 with loss 0.06934793. Total time 0.17083333333333334 hours\n",
      "Training at Epoch 9 iteration 100 with loss 0.06490899. Total time 0.18305555555555555 hours\n",
      "Validation at Epoch 9 , AUROC: 0.765083124432893 , AUPRC: 0.2748853760619467 , F1: 0.3253012048192771\n",
      "Training at Epoch 10 iteration 0 with loss 0.055708382. Total time 0.19194444444444445 hours\n",
      "Training at Epoch 10 iteration 100 with loss 0.04812324. Total time 0.20444444444444446 hours\n",
      "Validation at Epoch 10 , AUROC: 0.7793703766359596 , AUPRC: 0.2849700654404576 , F1: 0.37241379310344824\n",
      "--- Go for Testing ---\n",
      "Testing AUROC: 0.8309801706827309 , AUPRC: 0.4211659638528158 , F1: 0.34722222222222227\n",
      "--- Training Finished ---\n"
     ]
    },
    {
     "data": {
      "image/png": "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jRppfHy87tixQy+//HJNSko6r1ytWrXS9pdp06bpfffdp6qqsbGxaWU+/fRT7dSpU9pw+/bt9Y8//shwuRnte8AavcDfXauqysTy5TsZOHAhM2d2o02bqgBMmtQpwFGZfONlH7V1PKrZl3G1atWKDRucrnDee+89WrduTceOHQEoUqQIU6dOpV27dgwaNIgJEyYwatQo6tSpA0BoaCgDBw48b54nTpzgoYceYs2aNYgITz/9NLfddhvFihXjxIkTAHz88cfMnz+f2bNn07dvX0qXLs3PP/9MkyZNmDt3LuvWraNkSeeplzVr1uS7776jUKFCDBgwgN27dwPwyiuv0Lp163OWffz4cTZs2EDjxo0BWL16NUOGDOH06dNERkby1ltvUbt2bWbPns2CBQuIj4/n5MmTfPnll0ycOJEPP/yQhIQEbr31Vp599lkAbrnlFvbs2UN8fDyPPPII/fv393r7ZuTTTz+lV69ehIeHU716dWrWrMnq1atp1arVOeVEhLi4OABiY2O59NJLAShevHhamZMnT57TfnHzzTczZ84cHnvssYuK0RuWONL566+TDB++lLffXg/ApEkr0xKHMflFcnIyX3zxBf369QOcaqqrrrrqnDI1atTgxIkTxMXF8euvv/Loo49mO9/nnnuOEiVK8MsvvwBw9OjRbD+zdetWli1bRkhICCkpKcydO5f777+fH374gWrVqlGhQgXuuusuhg4dyrXXXsvu3bvp1KkTmzdvPmc+a9asoUGDsz001KlThxUrVhAaGsqyZct44okn+O9//wvAypUr2bBhA6VLl+bzzz9n27ZtrF69GlWle/furFixgjZt2vDmm29SunRpTp8+zdVXX81tt91GmTJlzlnu0KFDWb58+Xnr1atXLx5//PFzxu3du5eWLVumDVeuXJm9e/ee99nXX3+dLl26EBkZSfHixVm1alXatGnTpjFp0iTOnDnDl19+mTa+WbNmjB8/3hKHP6WkKG+88RMjRizj6NF4wsNDGD26DcOHXxPo0Ex+lIMzg9x0+vRpmjRpwq5du7jqqqvo0KED4FRZZ3b1TU6uylm2bBlz5sxJGy5VqlS2n/nb3/5GSEgIAHfeeSdjxozh/vvvZ86cOdx5551p802tzweIi4vj+PHjREVFpY3bt28f5cqVSxuOjY3lvvvuY9u2bYgIiYmJadM6dOhA6dKlAfj888/5/PPPadq0KeCcNW3bto02bdowZcoU5s6dC8CePXvYtm3beYlj8uTJ3m0cOKfNKFVG23fy5MksXLiQFi1aMHHiRIYNG8brr78OwKBBgxg0aBDvvfceY8eO5T//+Q8A5cuX588///Q6lothiQPYufMo99wzl++/3wNAx441mDatCzVrlg5wZMbkrsjISNatW0dsbCzdunVj2rRpPPzww9SvX58VK1acU3bHjh0UK1aMqKgo6tevz9q1a9OqgTKTWQLyHJf+noKiRYumvW/VqhXbt2/n4MGDfPLJJ4wePRqAlJQUVq5cSWRk5t33REZGnjPvJ598kuuvv565c+eya9cu2rVrl+EyVZWRI0fywAMPnDO/r776imXLlrFy5UqKFClCu3btMrwfIidnHJUrV2bPnj1pwzExMWnVUKkOHjzI+vXradGiBeAk086dO2c4/wcffDBtOD4+Psvtk5vsqiqgePFwtm49zCWXFGPOnNtYvPhuSxomXytRogRTpkzhpZdeIjExkbvvvptvv/2WZcucm1lPnz7Nww8/nFbtMXz4cJ5//nm2bt0KOD/kkyZNOm++HTt2ZOrUqWnDqVVVFSpUYPPmzWlVUZkREW699VaGDRtG3bp1047u08933bp15322bt26aVcfgXPGUalSJQBmz56d6TI7derEm2++mdYGs3fvXv766y9iY2MpVaoURYoUYcuWLedUF3maPHky69atO++VPmkAdO/enTlz5pCQkMDOnTvZtm0bzZs3P6dMqVKliI2NTdvWS5cupW7dugBs27YtrdyCBQuoVatW2vDWrVvPqarzpQKbOJYs2U5CQhIAZcoUYd68XmzZMog772xgN2mZAqFp06Y0btyYOXPmEBkZyaeffsrYsWOpXbs2DRs25Oqrr2bw4MEANGrUiFdeeYXevXtTt25dGjRowL59+86b5+jRozl69CgNGjSgcePGaUfi48ePp1u3btxwww1UrFgxy7juvPNO3n333bRqKoApU6awZs0aGjVqRL169YiOjj7vc3Xq1CE2Npbjx48D8NhjjzFy5Ehat25NcnJypsvr2LEjd911F61ataJhw4bcfvvtHD9+nM6dO5OUlESjRo148sknz2mbuFD169fnjjvuoF69enTu3Jlp06alVdN16dKFP//8k9DQUF577TVuu+02GjduzDvvvMPE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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "model = models.model_initialize(**config)\n",
    "model.train(train, val, test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "repurposing...\n",
      "in total: 6111 drug-target pairs\n",
      "encoding drug...\n",
      "unique drugs: 6111\n",
      "drug encoding finished...\n",
      "encoding protein...\n",
      "unique target sequence: 1\n",
      "protein encoding finished...\n",
      "Done.\n",
      "predicting...\n",
      "---------------\n",
      "Drug Repurposing Result for SARS-CoV 3CL Protease\n",
      "+------+-------------+-----------------------+-------------+-------------+\n",
      "| Rank |  Drug Name  |      Target Name      | Interaction | Probability |\n",
      "+------+-------------+-----------------------+-------------+-------------+\n",
      "|  1   |    3739.0   | SARS-CoV 3CL Protease |     YES     |     1.00    |\n",
      "|  2   |   27873.0   | SARS-CoV 3CL Protease |     YES     |     1.00    |\n",
      "|  3   |    6806.0   | SARS-CoV 3CL Protease |     YES     |     1.00    |\n",
      "|  4   |    3735.0   | SARS-CoV 3CL Protease |     YES     |     1.00    |\n",
      "|  5   |    5819.0   | SARS-CoV 3CL Protease |     YES     |     1.00    |\n",
      "|  6   |   152256.0  | SARS-CoV 3CL Protease |     YES     |     1.00    |\n",
      "|  7   |   11862.0   | SARS-CoV 3CL Protease |     YES     |     1.00    |\n",
      "|  8   |    5803.0   | SARS-CoV 3CL Protease |     YES     |     1.00    |\n",
      "|  9   |    5920.0   | SARS-CoV 3CL Protease |     YES     |     1.00    |\n",
      "|  10  |    3728.0   | SARS-CoV 3CL Protease |     YES     |     1.00    |\n",
      "checkout ./result/repurposing.txt for the whole list\n"
     ]
    }
   ],
   "source": [
    "X_repurpose, drug_name, drug_cid = load_broad_repurposing_hub('./kh278/DeepPurpose/data')\n",
    "target, target_name = load_SARS_CoV_Protease_3CL()\n",
    "\n",
    "_ = models.repurpose(X_repurpose, target, \n",
    "                     model, drug_cid, target_name, \n",
    "                     convert_y = False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
